package com.hemerasolutions.v2trainer.component.interfaces.list;

import java.util.List;

import javax.faces.event.ActionEvent;

import org.primefaces.event.TabChangeEvent;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.ExerciseDetailsCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.StatisticDetailsCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.search.ExerciseGroupSearchCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.search.ExerciseSearchCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.search.TrainingSearchCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.search.TrainingSystemSearchCompInterface;
import com.hemerasolutions.v2trainer.model.exercise.Exercise;
import com.hemerasolutions.v2trainer.model.exerciseGroup.ExerciseGroup;
import com.hemerasolutions.v2trainer.model.training.TrainingStep;

public interface StepListLevelsInterface extends BaseComponentInterface {

	public abstract void refresh();

	public abstract void setStepLevel(TrainingStep stepLevel);

	public abstract TrainingStep getStepLevel();

	public abstract void setStepLevels(List<TrainingStep> stepLevels);

	public abstract List<TrainingStep> getStepLevels();

	public abstract void addStep(ActionEvent ev);

	public abstract void copyLevel(ActionEvent ev);

	public abstract List<StepListCompInterface> getStepListHandlers();

	public abstract void setStepListHandlers(List<StepListCompInterface> stepListHandlers);

	public abstract StepListCompInterface getStepListHandler();

	public abstract void setStepListHandler(StepListCompInterface stepListHandler);

	public abstract String getPanelToUpdate();

	public abstract void setPanelToUpdate(String panelToUpdate);

	public abstract void addOthersGroup(ActionEvent ev);

	public abstract void updateCurrentPanel();

	public abstract ExerciseDetailsCompInterface getExerciseDetailsComp();

	public abstract void setExerciseDetailsComp(ExerciseDetailsCompInterface exerciseDetailsComp);

	public abstract	Exercise getSelExercise();

	public abstract	void setSelExercise(Exercise selExercise);

	public abstract	ExerciseSearchCompInterface getExerciseSearchComp();

	public abstract	void setExerciseSearchComp(ExerciseSearchCompInterface exerciseSearchComp);

	public abstract	void importStepListener(ActionEvent ev);

	public abstract	ExerciseGroupSearchCompInterface getExerciseGroupSearchComp();

	public abstract	void setExerciseGroupSearchComp( ExerciseGroupSearchCompInterface exerciseGroupSearchComp);

	public abstract	ExerciseGroup getExerciseGroup();

	public abstract	void setExerciseGroup(ExerciseGroup exerciseGroup);

	public abstract	TrainingStep getReferenceStepContainer();

	public abstract	void setReferenceStepContainer(TrainingStep referenceStepContainer);

	public abstract	StepListCompInterface getEgListHandler();

	public abstract	void setEgListHandler(StepListCompInterface egListHandler);

	public abstract	ExerciseDetailsCompInterface getExerciseDetailsHandler();

	public abstract	void setExerciseDetailsHandler(	ExerciseDetailsCompInterface exerciseDetailsHandler);

	public abstract	void toViewExercise();

	public abstract	void refreshExerciseGroupPreview();

	public abstract	StepListCompInterface getEgPreviewListHandler();

	public abstract	void setEgPreviewListHandler(StepListCompInterface egPreviewListHandler);

	public abstract	void setEgPreviewStepContainer(TrainingStep egPreviewStepContainer);

	public abstract	TrainingStep getEgPreviewStepContainer();

	public void addExerciseGroup();
	
	public void tabExerciseGroupChanged(TabChangeEvent event);

	public void copyToAll(ActionEvent ev);

	void setTsSearchComp(TrainingSystemSearchCompInterface tsSearchComp);
	
	TrainingSystemSearchCompInterface getTsSearchComp();

	void toSearchTrainingSystem();

	void toSearchTraining();

	TrainingSearchCompInterface getTrainingSearchComp();

	void setTrainingSearchComp(TrainingSearchCompInterface trainingSearchComp);

	IntensityZoneListCompInterface getIzHandler();

	void setIzHandler(IntensityZoneListCompInterface izHandler);

	ModalityIZListCompInterface getImzHandler();

	void setImzHandler(ModalityIZListCompInterface imzHandler);

	StatisticDetailsCompInterface getStatisticHandler();

	void setStatisticHandler(StatisticDetailsCompInterface statisticHandler);


}
